/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.fty.entity;

import com.jeesite.modules.sys.entity.Employee;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;

/**
 * 合同表Entity
 * @author 租凭合同简单版本
 * @version 2018-04-23
 */
@Table(name="${_prefix}fty_lease_contract_smart", alias="a", columns={
		@Column(name="contract_code", attrName="contractCode", label="主键", isPK=true),
		@Column(name="c_number", attrName="cNumber", label="合同编号"),
		@Column(includeEntity=DataEntity.class),
		@Column(name="a_name", attrName="aName", label="出租方", queryType=QueryType.LIKE),
		@Column(name="b_name", attrName="bName", label="受租方", queryType=QueryType.LIKE),
		@Column(name="c_name", attrName="cName", label="中介方", queryType=QueryType.LIKE),
		@Column(name="h_addess", attrName="hAddess", label="房屋地址"),
		@Column(name="h_area", attrName="hArea", label="建筑面积"),
		@Column(name="h_decoration", attrName="hDecoration", label="室内设施"),
		@Column(name="sub_room", attrName="subRoom", label="附属用房"),
		@Column(name="h_struts", attrName="hStruts", label="房屋结构"),
		@Column(name="h_finish_time", attrName="hFinishTime", label="房屋竣工时间"),
		@Column(name="trans_situation", attrName="transSituation", label="房屋结构改造情况"),
		@Column(name="lease_time_limit", attrName="leaseTimeLimit", label="租凭期限"),
		@Column(name="lease_start", attrName="leaseStart", label="lease_start"),
		@Column(name="lease_end", attrName="leaseEnd", label="lease_end"),
		@Column(name="rent_per_month", attrName="rentPerMonth", label="每月租金"),
		@Column(name="rent_select", attrName="rentSelect", label="按 月、季度、年"),
		@Column(name="h_money_first", attrName="hMoneyFirst", label="首付"),
		@Column(name="h_money_first_time", attrName="hMoneyFirstTime", label="首付款结清时间"),
		@Column(name="money_advance", attrName="moneyAdvance", label="结款提前时间"),
		@Column(name="deposit", attrName="deposit", label="押金"),
		@Column(name="h_others", attrName="hOthers", label="水电煤气以及", comment="水电煤气以及()使用费用"),
		@Column(name="h_expens_part", attrName="hExpensPart", label="维修费承担方"),
		@Column(name="h_useage", attrName="hUseage", label="租凭房屋用途"),
		@Column(name="h_agency_fee", attrName="hAgencyFee", label="中介费"),
		@Column(name="h_agency_time", attrName="hAgencyTime", label="中介费付清时间"),
		@Column(name="make_house_time", attrName="makeHouseTime", label="交房时间"),
		@Column(name="penalty", attrName="penalty", label="违约金"),
		@Column(name="solve_way", attrName="solveWay", label="解决途径"),
		@Column(name="solveway_path", attrName="solvewayPath", label="解决途径"),
		@Column(name="h_agency_part", attrName="hAgencyPart", label="中介费承担方"),
		@Column(name="h_year", attrName="hYear", label="年限"),


	},  joinTable={
		@JoinTable(type= JoinTable.Type.LEFT_JOIN, entity=Employee.class, alias="e",
				on="a.create_by = e.emp_code",
				columns={
						@Column(name="company_code", 		attrName="companyCode", 		label="公司标签", isUpdate=false),
						@Column(name="create_by", 		attrName="createBy", 		label="创建者", isUpdate=false),
						@Column(name="create_date", 	attrName="createDate", 		label="创建时间", isUpdate=false, isQuery=false),}),
},extWhereKeys="dsfOffice, dsfCompany", orderBy="a.update_date DESC"
)
public class FtyLeaseContractSmart extends DataEntity<FtyLeaseContractSmart> {

	private static final long serialVersionUID = 1L;
	private String contractCode;		// 主键
	private String cNumber;		// 合同编号
	private String aName;		// 出租方
	private String bName;		// 受租方

	private String cName;		// 中介方
	private String hAddess;		// 房屋地址
	private String hArea;		// 建筑面积
	private String hDecoration;		// 室内设施
	private String subRoom;		// 附属用房
	private String hStruts;		// 房屋结构
	private Date hFinishTime;		// 房屋
	private String transSituation;		// 房屋结构改造情况
	private String leaseTimeLimit;		// 租凭期限
	private Date leaseStart;		// lease_start
	private Date leaseEnd;		// lease_end
	private String rentPerMonth;		// 每月租金
	private String rentSelect;		// 按 月、季度、年
	private String hMoneyFirst;		// 首付
	private Date hMoneyFirstTime;		// 首付款结清时间
	private String moneyAdvance;		// 结款提前时间
	private String deposit;		// 押金
	private String hOthers;		// 水电煤气以及()使用费用
	private String hExpensPart;		// 维修费承担方
	private String hUseage;		// 租凭房屋用途
	private String hAgencyFee;		// 中介费
	private Date hAgencyTime;		// 中介费付清时间
	private Date makeHouseTime;		// 交房时间
	private String penalty;		// 违约金
	private String solveWay;		// 解决途径
	private String solvewayPath;
	private Employee employee;
	private String hAgencyPart;
	private String hYear;

	public String getHYear() {
		return hYear;
	}

	public void setHYear(String hYear) {
		this.hYear = hYear;
	}

	public String getHAgencyPart() {
		return hAgencyPart;
	}

	public void setHAgencyPart(String hAgencyPart) {
		this.hAgencyPart = hAgencyPart;
	}

	public Employee getEmployee() {
		return employee;
	}

	public void setEmployee(Employee employee) {
		this.employee = employee;
	}

	public String getSolvewayPath() {
		return solvewayPath;
	}

	public void setSolvewayPath(String solvewayPath) {
		this.solvewayPath = solvewayPath;
	}


	public FtyLeaseContractSmart() {
		this(null);
	}

	public FtyLeaseContractSmart(String id){
		super(id);
	}
	
	public String getContractCode() {
		return contractCode;
	}

	public void setContractCode(String contractCode) {
		this.contractCode = contractCode;
	}
	
	@Length(min=0, max=32, message="合同编号长度不能超过 32 个字符")
	public String getCNumber() {
		return cNumber;
	}

	public void setCNumber(String cNumber) {
		this.cNumber = cNumber;
	}
	
	@Length(min=0, max=32, message="出租方长度不能超过 32 个字符")
	public String getAName() {
		return aName;
	}

	public void setAName(String aName) {
		this.aName = aName;
	}
	
	@Length(min=0, max=32, message="受租方长度不能超过 32 个字符")
	public String getBName() {
		return bName;
	}

	public void setBName(String bName) {
		this.bName = bName;
	}
	
	@Length(min=0, max=32, message="中介方长度不能超过 32 个字符")
	public String getCName() {
		return cName;
	}

	public void setCName(String cName) {
		this.cName = cName;
	}
	
	@Length(min=0, max=32, message="房屋地址长度不能超过 32 个字符")
	public String getHAddess() {
		return hAddess;
	}

	public void setHAddess(String hAddess) {
		this.hAddess = hAddess;
	}
	
	@Length(min=0, max=32, message="建筑面积长度不能超过 32 个字符")
	public String getHArea() {
		return hArea;
	}

	public void setHArea(String hArea) {
		this.hArea = hArea;
	}
	
	@Length(min=0, max=32, message="室内设施长度不能超过 32 个字符")
	public String getHDecoration() {
		return hDecoration;
	}

	public void setHDecoration(String hDecoration) {
		this.hDecoration = hDecoration;
	}
	
	@Length(min=0, max=32, message="附属用房长度不能超过 32 个字符")
	public String getSubRoom() {
		return subRoom;
	}

	public void setSubRoom(String subRoom) {
		this.subRoom = subRoom;
	}
	
	@Length(min=0, max=32, message="房屋结构长度不能超过 32 个字符")
	public String getHStruts() {
		return hStruts;
	}

	public void setHStruts(String hStruts) {
		this.hStruts = hStruts;
	}
	

	public Date getHFinishTime() {
		return hFinishTime;
	}

	public void setHFinishTime(Date hFinishTime) {
		this.hFinishTime = hFinishTime;
	}
	
	@Length(min=0, max=32, message="房屋结构改造情况长度不能超过 32 个字符")
	public String getTransSituation() {
		return transSituation;
	}

	public void setTransSituation(String transSituation) {
		this.transSituation = transSituation;
	}
	
	@Length(min=0, max=32, message="租凭期限长度不能超过 32 个字符")
	public String getLeaseTimeLimit() {
		return leaseTimeLimit;
	}

	public void setLeaseTimeLimit(String leaseTimeLimit) {
		this.leaseTimeLimit = leaseTimeLimit;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLeaseStart() {
		return leaseStart;
	}

	public void setLeaseStart(Date leaseStart) {
		this.leaseStart = leaseStart;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLeaseEnd() {
		return leaseEnd;
	}

	public void setLeaseEnd(Date leaseEnd) {
		this.leaseEnd = leaseEnd;
	}
	
	@Length(min=0, max=32, message="每月租金长度不能超过 32 个字符")
	public String getRentPerMonth() {
		return rentPerMonth;
	}

	public void setRentPerMonth(String rentPerMonth) {
		this.rentPerMonth = rentPerMonth;
	}
	
	@Length(min=0, max=32, message="按 月、季度、年长度不能超过 32 个字符")
	public String getRentSelect() {
		return rentSelect;
	}

	public void setRentSelect(String rentSelect) {
		this.rentSelect = rentSelect;
	}
	
	@Length(min=0, max=32, message="首付长度不能超过 32 个字符")
	public String getHMoneyFirst() {
		return hMoneyFirst;
	}

	public void setHMoneyFirst(String hMoneyFirst) {
		this.hMoneyFirst = hMoneyFirst;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getHMoneyFirstTime() {
		return hMoneyFirstTime;
	}

	public void setHMoneyFirstTime(Date hMoneyFirstTime) {
		this.hMoneyFirstTime = hMoneyFirstTime;
	}
	
	@Length(min=0, max=32, message="结款提前时间长度不能超过 32 个字符")
	public String getMoneyAdvance() {
		return moneyAdvance;
	}

	public void setMoneyAdvance(String moneyAdvance) {
		this.moneyAdvance = moneyAdvance;
	}
	
	@Length(min=0, max=32, message="押金长度不能超过 32 个字符")
	public String getDeposit() {
		return deposit;
	}

	public void setDeposit(String deposit) {
		this.deposit = deposit;
	}
	
	@Length(min=0, max=32, message="水电煤气以及长度不能超过 32 个字符")
	public String getHOthers() {
		return hOthers;
	}

	public void setHOthers(String hOthers) {
		this.hOthers = hOthers;
	}
	
	@Length(min=0, max=32, message="维修费承担方长度不能超过 32 个字符")
	public String getHExpensPart() {
		return hExpensPart;
	}

	public void setHExpensPart(String hExpensPart) {
		this.hExpensPart = hExpensPart;
	}
	
	@Length(min=0, max=32, message="租凭房屋用途长度不能超过 32 个字符")
	public String getHUseage() {
		return hUseage;
	}

	public void setHUseage(String hUseage) {
		this.hUseage = hUseage;
	}
	
	@Length(min=0, max=32, message="中介费长度不能超过 32 个字符")
	public String getHAgencyFee() {
		return hAgencyFee;
	}

	public void setHAgencyFee(String hAgencyFee) {
		this.hAgencyFee = hAgencyFee;
	}
	

	public Date getHAgencyTime() {
		return hAgencyTime;
	}

	public void setHAgencyTime(Date hAgencyTime) {
		this.hAgencyTime = hAgencyTime;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getMakeHouseTime() {
		return makeHouseTime;
	}

	public void setMakeHouseTime(Date makeHouseTime) {
		this.makeHouseTime = makeHouseTime;
	}
	
	@Length(min=0, max=32, message="违约金长度不能超过 32 个字符")
	public String getPenalty() {
		return penalty;
	}

	public void setPenalty(String penalty) {
		this.penalty = penalty;
	}
	
	@Length(min=0, max=32, message="解决途径长度不能超过 32 个字符")
	public String getSolveWay() {
		return solveWay;
	}

	public void setSolveWay(String solveWay) {
		this.solveWay = solveWay;
	}
	
}